home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / M-More Monthly Disks / (c)m3.d64 / discat.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  8KB  |  244 lines

  1. 0 REM GOTO 0 TO REENTER WITHOUT RELOAD
  2. 5 S$="                          "+""
  3. 6 SB=53280:SC=53281:PRINT"[144]"
  4. 10 IFPEEK(50326)=198THEN6075
  5. 15 GOTO6000
  6. 20 REM#################################
  7. 21 REM#         JIM SMITH             #
  8. 22 REM#         111 EMILY STREET      #
  9. 23 REM#         ORILLIA L3V 5V2       #
  10. 24 REM#         325-6227              #
  11. 25 REM#GREAT WHITE NORTH COMPUTER CLUB#
  12. 26 REM# DISCAT-A 1541 DISK UTILITY TO #
  13. 27 REM#FORM A LIBRARY OF PROGRAM NAMES#
  14. 32 REM#################################
  15. 79 REM******SCREEN FORMAT************
  16. 80 POKESB,CB:POKESC,CS:PRINT"[147][213][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]DISCAT[195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][201]";
  17. 81 PRINT"[194]                                      [194]";
  18. 82 PRINT"[202][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][203]";HL$;:RETURN
  19. 99 REM***MAKE A SCREEN HEADER*********
  20. 100 CB=15:CS=12
  21. 105 HL$=" C[146]ATLG D[146]SPLAY E[146]XIT H[146]ELP P[146]RNT $[146]DIR S[146]RCH"
  22. 120 GOSUB80:PRINTHL$:PRINT"      COMMAND?":RETURN
  23. 199 REM****CATALOG SELECTED***********
  24. 200 CB=15:CS=12
  25. 205 HL$="          CATALOG FUNCTION            ":GOSUB80
  26. 210 PRINT"            CATALOG? (Y/N)"
  27. 212 GETY$:IFY$=""THEN212
  28. 213 IFY$<>"Y"THENRETURN
  29. 219 REM**  FORM ID AND BLOCKS FREE **
  30. 220 PRINT" INSERT DISK FOR CATALOG AND HIT A KEY."
  31. 230 GETA$:IFA$=""THEN230
  32. 240 OPEN2,8,2,"#":GOSUB300:PRINT#15,"U1";2;0;18;0:PRINT#15,"B-P:"2;162
  33. 250 GET#2,I$,D$:ID$=I$+D$:CLOSE2:OPEN1,8,0,"$0:%%2^!"
  34. 255 CH$="                 "+"":SYS50323
  35. 260 DH$="                 "+"":SYS50323
  36. 262 H$=LEFT$(CH$,16)+ID$+STR$(PEEK(251)+256*PEEK(252)):CLOSE1
  37. 265 PRINT" CURRENT DISK: "H$:PRINT"   SEARCHING ";NH;" HEADERS FOR MATCH"
  38. 270 FORCT=1TONH:IFH$=HF$(CT)THEN290
  39. 274 NEXT:FORCT=1TONH
  40. 275 IFID$=MID$(HF$(CT),17,2)THENPRINT"     ID MATCH FOUND":GOTO297
  41. 277 REM******APPEND NEW HEADER*********
  42. 278 NEXT:NH=NH+1:HF$(NH)=H$:HF$(0)=STR$(NH):GOSUB600
  43. 287 PRINT"     SORTING FILES":SYS49152,NH,HF$(1):SYS49152,NF,MF$(1):RETURN
  44. 289 REM**  CURRENT HEADER IS IDENTICAL MATCH  **
  45. 290 PRINT"  DISK ID AND BLOCKS-FREE COUNT INDICATE";
  46. 291 PRINT"  THAT THIS DISK HAS NOT CHANGED SINCE "
  47. 292 PRINT"            IT WAS LOGGED."
  48. 294 PRINT"      DO YOU WANT IT LOGGED AGAIN?                      <Y/N>"
  49. 295 GETA$:IFA$=""THEN295
  50. 296 IFA$<>"Y"THENRETURN
  51. 297 HF$(CT)=H$:GOSUB500:GOSUB600:PRINT"    SORTING":SYS49152,NF,MF$(1):RETURN
  52. 299 REM****ERROR TRAPPING ROUTINES*****
  53. 300 INPUT#15,E,G$,L$,K$:IFE<20THENRETURN
  54. 310 IFE=74THENPRINT"       DISK NOT PRESENT":STOP:RETURN
  55. 320 PRINTE;G$;L$;K$:CLOSE15:END
  56. 399 REM******APPEND HEADER***********
  57. 400 NH=NH+1:HF$(NH)=H$:HF$(0)=STR$(NH):RETURN
  58. 499 REM*******DELETE FILES**********
  59. 500 PRINT"     DELETING OLD FILE NAMES"
  60. 502 TC=NF:FORCT=1TONF:IFMID$(MF$(CT),19,2)=ID$THENMF$(CT)="[255][255][255]"+MF$(CT):TC=TC-1
  61. 505 NEXT
  62. 510 SYS49152,NF,MF$(1):NF=TC:MF$(0)=STR$(NF):RETURN
  63. 599 REM*******APPEND FILES**********
  64. 600 PRINT"     ADDING FILE NAMES TO LIBRARY"
  65. 602 OPEN1,8,0,"$0":GOSUB300
  66. 610 DH$="                 "+"":SYS50323:IFSTTHENCLOSE1:RETURN
  67. 620 FORCT=NF+1TONF+150
  68. 630 F$="                 "+"":SYS50323
  69. 635 IFSTTHENMF$(0)=STR$(CT-2):NF=CT-2:CLOSE1:RETURN
  70. 640 MF$(CT)=F$+" "+ID$+STR$(PEEK(251)+256*PEEK(252)):NEXT:PRINT"APPEND ERROR:END
  71. 699 [143]*******$DIRECTORY****************
  72. 700 CB[178]15:CS[178]12:HL$[178]"INSERT DISK AND HIT KEY-SPACE PAUSES":[141]80
  73. 701 [161]A$:[139]A$[178]""[167]701
  74. 702 [158]50178:[153]"HIT A KEY FOR MENU"
  75. 705 [161]A$:[139]A$[178]""[167]705
  76. 710 [142]
  77. 999 [143]******DISPLAY SELECTED*********
  78. 1000 CB[178]3:CS[178]13
  79. 1005 HL$[178]"DISPLAY-SPACE BAR TO PAUSE-F1 TO ABORT":[141]80
  80. 1010 [153]"          FWAITILE OR HWAITEADERS?":[153]""
  81. 1020 [161]A$:[139]A$[178]""[167]1020
  82. 1030 [139]A$[178]"F"[167]1060
  83. 1040 [139]A$[178]"H"[167]1080
  84. 1050 [137]1010
  85. 1059 [143]******FILE DISPLAY************
  86. 1060 [129]I[178]1[164]NF:[161]A$:[139]A$[178]"INPUT"[167][142]
  87. 1061 [139][194](197)[179][177]64[167]1061
  88. 1062 [153][163]6)MF$(I):[130]
  89. 1063 [153]"    FINISHED -HIT F1WAIT KEY FOR MENU "
  90. 1065 [161]A$:[139]A$[178]""[167]1065
  91. 1066 [139]A$[179][177]"INPUT"[167]1065
  92. 1068 [142]
  93. 1079 [143]*******HEADER DISPLAY**********
  94. 1080 [129]J[178]1[164][181](NH[171]1)[173]15[170]1
  95. 1083 HL$[178]"HEADERS-F1WAIT FOR MENU/SPACE BAR TO GO ON":[141]80
  96. 1084 [153]""
  97. 1085 [129]I[178]J[172]15[171]14[164]J[172]15:[153][163]8)HF$(I):[130]
  98. 1095 [161]A$:[139]A$[178]"INPUT"[167][142]
  99. 1100 [139]A$[178]" "[167]1120
  100. 1105 [137]1095
  101. 1120 [130]:[137]1080
  102. 1999 [143]*******PRINT SELECTED**********
  103. 2000 CB[178]11:CS[178]12
  104. 2005 HL$[178]"           PRINT SELECTED":[141]80:[153]HL$
  105. 2010 [153]"      PRINT?     <Y/N>    "
  106. 2015 [161]A$:[139]A$[178]""[167]2015
  107. 2020 [139]A$[179][177]"Y"[167][142]
  108. 2025 [153]"FWAITILES OR HWAITEADERS OR BWAITOTH ?"
  109. 2030 [161]A$:[139]A$[178]""[167]2030
  110. 2035 [139]A$[178]"F"[167]2065
  111. 2036 [139]A$[178]"B"[167]2300
  112. 2040 [139]A$[179][177]"H"[167][142]
  113. 2041 [159]4,4:[152]4,[199](27);[199](64);
  114. 2045 [152]4,[199](142);"              ";NH;"    HEADERS";[199](15)
  115. 2048 [152]4:[152]4:[152]4,[199](27);[199](68);[199](35);[199](70);[199](0);
  116. 2050 [129]CT[178]1[164]NH[169]2:[152]4,[199](9);HF$(CT);[199](9);HF$(CT[170]1):[130]:[137]2080
  117. 2065 [159]4,4:[152]4,[199](27);[199](64);[199](14);"            ";NF;"    PROGRAMS"
  118. 2066 [152]4:[152]4
  119. 2068 [152]4,[199](27);"D";[199](5);[199](42);[199](80);[199](118);[199](0);
  120. 2070 [152]4,[199](143);:[129]CT[178]1[164]NF[169]4:[129]T[178]CT[164]CT[170]3
  121. 2071 [152]4,[199](9);MF$(T);:[130]:[152]4,[199](13);:[130]
  122. 2080 [152]4:[160]4:[142]
  123. 2300 [143] INITIALISE PRINTER AND SET 4COULMN TABS
  124. 2310 [159]4,4:[152]4,;[199](27);[199](64);
  125. 2315 [152]4,;[199](27);[199](68);[199](5);[199](42);[199](80);[199](118);[199](0);
  126. 2330 [129]J[178]1[164]NH:[152]4,HF$(J);[199](143);[199](13);
  127. 2340 ID$[178][202](HF$(J),17,2):CT[178]3
  128. 2350 [129]I[178]1[164]NF:[139]ID$[179][177][202](MF$(I),19,2)[167]2380
  129. 2360 CT[178]CT[170]1:[139]CT[178]4[167][152]4,[199](13);:CT[178]0
  130. 2370 [152]4,;[199](9);MF$(I);
  131. 2380 [130]:[152]4,[199](146);[199](13):[130]:[137]2080
  132. 2999 [143]******SEARCH SELECTED**********
  133. 3000 CB[178]8:CS[178]9
  134. 3002 HL$[178]"      SEARCH (AND SCRATCH) FILES":[141]80
  135. 3004 [153]"                 SEARCH? (Y/N)"
  136. 3006 [161]Y$:[139]Y$[178]""[167]3006
  137. 3008 [139]Y$[179][177]"Y"[167][142]
  138. 3010 N$[178]"":[133]" SEARCH FOR";N$
  139. 3012 HL$[178]"LOOKING UP: "[170]N$:[141]80:[153]""
  140. 3014 FL[178]0:NS[178]0:LN[178][195](N$):[129]CT[178]1[164]NF
  141. 3016 [139]N$[178][200](MF$(CT),LN)[167][153][163]9)CT;MF$(CT):FL[178]1:NS[178]NS[170]1
  142. 3018 [139]NS[179][177]18[167]3030
  143. 3020 NS[178]0:[153]"    F1WAIT TO MENU-SPACE BAR TO CONTINUE"
  144. 3022 [161]A$:[139]A$[178]""[167]3022
  145. 3024 [139]A$[178]"INPUT"[167][142]
  146. 3026 [139]A$[179][177]" "[167]3022
  147. 3028 [141]80:[153]HL$:[153]""
  148. 3030 [130]:[139]FL[178]0[167][153]"             NO HITS"
  149. 3031 [153]"  FINISHED-";
  150. 3032 [153]"F1WAIT TO MENU"
  151. 3033 [153]"           SPACE TO SEARCH"
  152. 3034 [153]"           F7WAIT TO SCRATCH FILES"
  153. 3036 [161]A$:[139]A$[178]""[167]3036
  154. 3038 [139]A$[178]"INPUT"[167][142]
  155. 3040 [139]A$[178]" "[167][153]"LOAD":[137]3010
  156. 3042 [139]A$[178]"LET"[167]3044
  157. 3043 [137]3036
  158. 3044 HL$[178]"SCRATCH SELECTED":[141]80
  159. 3046 [153]"      SCRATCH? (Y/N)
  160. 3048 GETY$:IFY$=""THEN3048
  161. 3050 IFY$<>"Y"THENRETURN
  162. 3052 INPUT"    NUMBER OF FILE TO SCRATCH";SN$
  163. 3054 SN=VAL(SN$):IFSN=0ORSN>NFTHENPRINT"  INVALID ENTRY":GOTO3052
  164. 3056 HL$="TARGET FILE: "+MF$(SN):GOSUB80:PRINTHL$
  165. 3057 PRINT"   SCRATCH THIS? (Y/N)"
  166. 3058 GETY$:IFY$=""THEN3058
  167. 3060 IFY$<>"Y"THENPRINT"":GOTO3032
  168. 3062 PRINT"    INSERT DISK OF ID: ";MID$(MF$(SN),19,2);" AND HIT A KEY"
  169. 3063 GETA$:IFA$=""THEN3063
  170. 3064 FORCT=16TO1STEP-1:IFMID$(MF$(SN),CT,1)<>" "THEN3066
  171. 3065 NEXT:PRINT"   SCRATCHING FILE"
  172. 3066 PRINT#15,"S0:"+LEFT$(MF$(SN),CT)
  173. 3068 INPUT#15,E$,D$,G$,H$:PRINTE$;D$;G$;H$
  174. 3070 PRINT"         ANOTHER? (Y/N)"
  175. 3072 GETY$:IFY$=""THEN3072
  176. 3074 IFY$<>"Y"THENRETURN
  177. 3076 GOTO3044
  178. 3999 REM*****SAVE &/OR END***********
  179. 4000 CB=10:CS=2
  180. 4002 HL$="           SAVE AND/OR END   ":GOSUB80
  181. 4003 PRINT"SAVE?-<Y/N> "
  182. 4005 GETY$:IFY$=""THEN4005
  183. 4010 IFY$="Y"THEN4060
  184. 4020 PRINT"END?-<Y/N>"
  185. 4030 GETY$:IFY$=""THEN4030
  186. 4040 IFY$="Y"THENCLOSE1:CLOSE2:CLOSE3:CLOSE4:CLOSE15:END
  187. 4050 RETURN
  188. 4060 PRINT" INSERT DISCAT[146] DISK AND HIT A KEY"
  189. 4062 GETA$:IFA$=""THEN4062
  190. 4068 PRINT"SAVING ";HF$(0);" HEADERS..."
  191. 4070 OPEN2,8,2,"@0:HDRLIST.D,S,W":GOSUB300
  192. 4080 FORCT=0TONH:PRINT#2,HF$(CT);CHR$(13);:NEXT:CLOSE2
  193. 4090 PRINT"SAVING ";MF$(0);" PROGRAM NAMES..."
  194. 4091 OPEN3,8,3,"@0:PRGLIST.D,S,W":GOSUB300
  195. 4093 FORCT=0TONF:PRINT#3,MF$(CT);CHR$(13);:NEXT:CLOSE3:GOTO4020
  196. 5999 REM ******INITIALIZATION*********
  197. 6000 CB=15:CS=15
  198. 6050 HL$="         DISCAT[146] BY JIM SMITH":GOSUB80
  199. 6060 PRINT"           WAIT...LOADING CODE"
  200. 6070 LOAD"DCATMLP.D",8,1
  201. 6075 IFNF<>0THEN6175
  202. 6080 DIMMF$(1000):DIMHF$(60)
  203. 6081 OPEN15,8,15:OPEN1,8,2,"HDRLIST.D,S,R":GOSUB300
  204. 6083 SYS50470:L=PEEK(142):HF$(0)=LEFT$(S$,L):NH=VAL(HF$(0))
  205. 6085 IFNH=0THENCLOSE1:C$="C":GOTO6210
  206. 6090 PRINT"...LOADING ";HF$(0);" HEADER NAMES"
  207. 6120 FORCT=1TONH:SYS50470:L=PEEK(142):HF$(CT)=LEFT$(S$,L):NEXT
  208. 6130 CLOSE1:OPEN1,8,3,"PRGLIST.D,S,R":GOSUB300
  209. 6133 SYS50470:L=PEEK(142):MF$(0)=LEFT$(S$,L):NF=VAL(MF$(0))
  210. 6140 PRINT"...LOADING ";MF$(0);" PROGRAM NAMES"
  211. 6150 FORCT=1TONF
  212. 6160 FORCT=1TONF:SYS50470:L=PEEK(142):MF$(CT)=LEFT$(S$,L):NEXT
  213. 6170 CLOSE1
  214. 6175 CB=15:CS=12
  215. 6180 HL$=" C[146]ATALOG D[146]ISPLAY E[146]XIT H[146]ELP P[146]RINT $[146]DIR":GOSUB80
  216. 6190 PRINT"[144]      COMMAND?"
  217. 6200 GETC$:IFC$=""THEN6200
  218. 6210 IFC$="C"THENGOSUB200:GOSUB100
  219. 6220 IFC$="H"THENGOSUB7000:GOSUB100
  220. 6230 IFC$="D"THENGOSUB1000:GOSUB100
  221. 6240 IFC$="P"THENGOSUB2000:GOSUB100
  222. 6250 IFC$="$"THENPRINT"[147]":GOSUB700:GOSUB100
  223. 6255 IFC$="S"THENGOSUB3000:GOSUB100
  224. 6260 IFC$="E"THENGOSUB4000:GOSUB100
  225. 6270 GOTO6200
  226. 6999 REM**   HELP SELECTED    **
  227. 7000 POKESB,3:POKESC,13
  228. 7002 PRINT"[147]C[146]ATALOG-ADDS,REMOVES,SORTS PRG AND"
  229. 7005 PRINT"           DISK NAMES TO LIBRARY."
  230. 7010 PRINT"D[146]ISPLAY-VIEW DISKNAMES OR FILE NAMES"
  231. 7015 PRINT"           IN LIBRARY."
  232. 7030 PRINT"S[146]EARCH-LOOK UP A FILE-DISPLAYS FULL"
  233. 7035 PRINT"          OR PARTIAL MATCH. YOU MAY";
  234. 7038 PRINT"               SCRATCH BY LIBRARY NUMBER."
  235. 7040 PRINT"$[146]DIR-CURRENT DISK DIRECTORY DISPLAYED";
  236. 7045 PRINT"        SPACE BAR TO PAUSE."
  237. 7048 PRINT"P[146]RINT-SET FOR M/T SPIRIT & EPSON               PRINTERS";
  238. 7050 PRINT"  FORMAT LINES ARE                    2000-2999"
  239. 7063 PRINT"         HIT A KEY FOR MENU "
  240. 7065 GETA$:IFA$=""THEN7065
  241. 7080 RETURN
  242. 8000 REM LOAD AND RUN ZERODEMFILES TO SET UP SEQ FILES BEFORE USING THIS
  243. 8005 REM PROGRAM FOR THE FIRST TIME
  244.